<?php

require_once 'RegisterView.php';
require_once 'RegisterHandler.php';

class RegisterController{
	
	private $message = "";
	private $ret = "";
	private $error = FALSE;
	
	public function DoControll(Database $db){
			$registerView = new RegisterView();
			$registerHandler = new RegisterHandler($db);
			
			//Skapar fomuläret.
			$this->ret =$registerView->UserInfo();
			
			if($registerView->TriedToLoggin()){
				//Kollar så att användarnamnet är ledigt.
				if($registerHandler->CheckExist($registerView->GetUsername())){
					$this->message .=$registerView->Message(RegisterView::NAME_DOES_EXIST);
					$this->error = TRUE;
				}
				//Kollar så att användaren har skrivit något namn.
				if($registerHandler->usernameIsEmpty($registerView->GetUsername())){
					$this->message .=$registerView->Message(RegisterView::NAME_IS_EMPTY);
					$this->error = TRUE;
				}
				//Kollar så att användaren har skrivit in ett lösenord.
				if($registerHandler->passwordIsEmpty($registerView->GetPassword())){
					$this->message .=$registerView->Message(RegisterView::PASS_IS_EMPTY);
					$this->error = TRUE;
				}
				//Kollar om lösenorden matchar.
				if($registerView->checkPasswords($registerView->GetPassword(), $registerView->GetPassword2())){
					$this->message .=$registerView->Message(RegisterView::PASS_NOT_EQUAL);
					$this->error = TRUE;
				}
				//Validerar lösenordet.
				if($registerHandler->validatePassWord($registerView->GetPassword()) === FALSE){
					$this->message .=$registerView->Message(RegisterView::PASS_NOT_GOOD);
					$this->error = TRUE;
				}
				
				if($this->error === FALSE){
					if($registerHandler->RegisterUser($registerView->GetUsername(), md5($registerView->GetPassword()))){
						$this->message .=$registerView->Message(RegisterView::USER_REGISTER);
						
					}
				}
				
			}
					return $this->ret . $this->message;
	
	}
	
}
